package 集合;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class 集合遍历删除异常 {
    public static void main(String[] args) {
        List<String> a=new ArrayList<>();
        a.add("傻逼");
        a.add("朱佳铖");
        a.add("李佳辉");
        a.add("李佳辉");
        //1.迭代器删除
        Iterator<String> i=a.iterator();
        while(i.hasNext()){
            if (i.next().equals("朱佳铖")){
                i.remove();//删除当前所在数据 且不会后移动
            }
        }
        System.out.println(a);
        //2.foreach和lambda会有错
        //3.for循环从后往前删正确从前往后删会出bug
        for (int j = a.size(); j >=0; j--) {
            if(a.get(j).equals("朱佳铖")){
                a.remove("朱佳铖");
            }
        }
        //或者每次删除后往前移动一格
        for (int j = 0; j <a.size(); j++) {
            if(a.get(j).equals("朱佳铖")){
                a.remove("朱佳铖");
                j--;
            }
        }
    }
}
